package collection;
/**
 * 排序自定义类型元素的集合
 */
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortListDemo2 {
    public static void main(String[] args) {
        List<Point>list=new ArrayList<>();
        list.add(new Point(1,3));
        list.add(new Point(6,9));
        list.add(new Point(2,0));
        list.add(new Point(9,1));
        list.add(new Point(7,5));

        System.out.println(list);
        //lamda表达式
         /* 原本的样子
             public int compare(Point o1, Point o2) {
                   int olen1 = o1.getX()*o1.getX()+o1.getY()*o1.getY();
                   int olen2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
                   return olen1-olen2;
                }
            };
                Collections.sort(list,c);*/
         /*
//                该方法重写的目的用于给出o1与o2谁大谁小.
//                返回值是一个int值,表达o1与o2的大小关系.
//                当返回值>0时:表示经过判断o1是大于o2的
//                当返回值<0时:表示o1<o2
//                当返回值=0时:表示o1与o2相等
//             */
        Collections.sort(list,(o1,o2)->
                 o1.getX()* o1.getX()+ o1.getY()*o1.getY()-
                o2.getX()* o2.getX()- o2.getY()*o2.getY()
        );
        System.out.println(list);
    }
}
